Skip to main content

5. Object Storage

  • Object Storage는 ECI에서 제공하는 S3 compatible Object Storage 서비스입니다.
  • 아래의 정보로 Object Storage에 접근할 수 있습니다:
    • Bucket Name: Object Storage 생성 시 할당된 Bucket Name
    • Access Key: Object Storage User 생성 시 발급받은 Access Key
    • Secret Key: Object Storage User 생성 시 발급받은 Secret Key

5.1 Object Storage 생성

  1. Object Storage 탭을 클릭합니다.
  2. NEW 버튼을 클릭하여 생성 페이지로 이동합니다.
  3. Object Storage를 생성할 Zone의 ID를 선택합니다.
  4. Name을 입력합니다.
  5. Size를 입력합니다. (단위: GiB)
  6. Create 버튼을 클릭하여 Object Storage를 생성합니다. create-object-storage-6
  7. 생성된 Object Storage의 Status가 activated로 바뀌면 생성이 완료됩니다. create-object-storage-7
  8. bucket-name을 사용하여 Object Storage에 접근할 수 있습니다. create-object-storage-8

5.2 Object Storage User 생성

  1. Object StorageUser 탭을 클릭합니다.
  2. NEW 버튼을 클릭하여 생성 페이지로 이동합니다.
  3. User를 생성할 Zone의 ID를 선택합니다.
  4. Name을 입력합니다.
  5. Create 버튼을 클릭하여 Object Storage User를 생성합니다. create-object-storage-user-5
  6. 생성된 Object Storage User의 Status가 activated로 바뀌면 생성이 완료됩니다.
  7. create-object-storage-user-6
  8. 생성된 Object Storage User의 Access KeySecret Key를 사용하여 Object Storage에 접근할 수 있습니다. create-object-storage-user-7

5.3 Object Storage User Grant 생성

  1. Object StorageUser Grant 탭을 클릭합니다.
  2. NEW 버튼을 클릭하여 생성 페이지로 이동합니다.
  3. User Grant를 생성할 Zone의 ID를 선택합니다.
  4. 권한을 부여할 Object Storage User의 ID를 선택합니다.
  5. 권한을 부여할 Object Storage의 ID를 선택합니다.
  6. Permission을 선택합니다.
    1. read_only: 읽기 권한
    2. read_write: 읽기 및 쓰기 권한
  7. Create 버튼을 클릭하여 Object Storage User Grant를 생성합니다. create-object-storage-user-grant-6
  8. 생성된 Object Storage User Grant의 Status가 activated로 바뀌면 생성이 완료됩니다. create-object-storage-user-grant-7

5.4 Object Storage 사용법

rclone, aws 등의 S3 호환 클라이언트를 사용하여 Object Storage를 사용할 수 있습니다.

로컬 파일을 Object Storage에 업로드하기

aws-cli 사용 예시

  1. aws-cli 설치
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
  1. 인증 설정
aws configure
Access Key ID [None]: YOUR_ACCESS_KEY
Secret Access Key [None]: YOUR_SECRET_KEY
Default region name [None]: (빈칸으로 두고 Enter)
Default output format [None]: (빈칸으로 두고 Enter)
  1. endpoint 설정
# 아래의 내용을 ~/.aws/config 파일에 추가
[default]
services = s3

[services s3]
s3 =
endpoint_url = https://s3.elice.cloud
  1. 파일 업로드
# YOUR_BUCKET_NAME은 eci-... 로 시작하는 bucket name을 사용합니다.
aws s3 cp /path/to/local/file s3://YOUR_BUCKET_NAME/path/in/bucket

rclone 사용 예시

  1. rclone 설치
sudo -v ; curl https://rclone.org/install.sh | sudo bash
  1. rclone 설정
rclone config
  1. n → 새 remote 생성

  2. Name: elicecloud

  3. Storage: 4

  4. Provider: 4

  5. env_auth: (빈칸으로 두고 Enter)

  6. Access Key ID: YOUR_ACCESS_KEY

  7. Secret Access Key: YOUR_SECRET_KEY

  8. Region: (빈칸으로 두고 Enter)

  9. Endpoint: https://s3.elice.cloud

  10. Location constraint: (빈칸으로 두고 Enter)

  11. acl: (빈칸으로 두고 Enter)

  12. server_side_encryption? (빈칸으로 두고 Enter)

  13. sse_kms_key_id? (빈칸으로 두고 Enter)

  14. Edit advanced config: n

  15. Keep this "elicecloud" remote: y

  16. q -> quit

  17. 파일 업로드

# YOUR_BUCKET_NAME은 eci-... 로 시작하는 bucket name을 사용합니다.
rclone copy /path/to/local/file elicecloud:YOUR_BUCKET_NAME/path/in/bucket --s3-no-check-bucket
  • ECI Object Storage의 s3 bucket 생성은 portal에서만 가능하므로, --s3-no-check-bucket 옵션을 사용합니다.

VM에 Object Storage 마운트하기

  1. VM에 rclone 설치
sudo -v ; curl https://rclone.org/install.sh | sudo bash
  1. rclone 설정
rclone config
  1. n → 새 remote 생성

  2. Name: elicecloud

  3. Storage: 4

  4. Provider: 4

  5. env_auth: (빈칸으로 두고 Enter)

  6. Access Key ID: YOUR_ACCESS_KEY

  7. Secret Access Key: YOUR_SECRET_KEY

  8. Region: (빈칸으로 두고 Enter)

  9. Endpoint: https://s3.elice.cloud

  10. Location constraint: (빈칸으로 두고 Enter)

  11. acl: (빈칸으로 두고 Enter)

  12. server_side_encryption? (빈칸으로 두고 Enter)

  13. sse_kms_key_id? (빈칸으로 두고 Enter)

  14. Edit advanced config: n

  15. Keep this "elicecloud" remote: y

  16. q -> quit

  17. Object Storage 마운트

# YOUR_BUCKET_NAME은 eci-... 로 시작하는 bucket name을 사용합니다.
rclone mount elicecloud:YOUR_BUCKET_NAME /path/to/mount/point --daemon

rclone 마운트 시 중의사항

  1. rclone으로 마운트할 경우 chunk size가 기본으로 5MiB가 됩니다.
  2. 최대 chunk 개수는 10,000개입니다.
  3. 따라서 기본값으로 단일 파일 업로드 가능 용량은 약 48GiB입니다.
  4. 더 큰 크기의 단일파일 용량을 업로드하고 싶다면 --s3-chunk-size 옵션을 추가해야 합니다.
  5. 예시: --s3-chunk-size=0.1Gi → 최대 약 1TiB의 단일파일 업로드 가능
  6. rclone으로 마운트된 Object Storage를 df -h로 확인하면 용량이 정확히 표시되지 않고 1.0P(페타바이트)로 표시됩니다.

chunk size 증가 시 trade-off:

  • 장점: 더 큰 단일 파일 업로드 가능
  • 단점:
    • 메모리 사용량 증가 (chunk size만큼 메모리 사용)
    • 네트워크 재시도 시 더 많은 데이터 재전송
    • 업로드 실패 시 더 많은 데이터 손실 위험

예시 - 큰 파일 업로드를 위한 마운트:

rclone mount elicecloud:YOUR_BUCKET_NAME /path/to/mount/point --daemon --s3-chunk-size=0.1Gi